/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2006，所有权利保留。
 * 
 * 文件名：	IPrompt.java
 * 模块说明：	
 * 修改历史：
 * 2006-11-14 - lxm - 创建。
 */
package com.hd123.rumba.prompt;

import java.util.Date;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.IBaseEntity;
import com.hd123.rumba.user.IRole;
import com.hd123.rumba.user.IUser;

/**
 * 提示信息 | 实体 | 接口类
 * <p>
 * 
 * domain: 与收件人所属域保持一致。<br>
 * state: 取值为CPrompt.VALUE_STATE_*。
 * 
 * 收件人只能是用户或角色，分别对应recipientUser和recipientRole。
 * 
 * @author lxm
 * 
 */
public interface IPrompt extends IBaseEntity {

  /**
   * 收件人.用户<br>
   * 指定用户作为收件人。
   */
  public IUser getReceiverUser() throws BusinessException;

  public void setReceiverUser(IUser receiverUser) throws BusinessException;

  /**
   * 收件人.角色<br>
   * 指定角色为收件人。
   */
  public IRole getReceiverRole() throws BusinessException;

  public void setReceiverRole(IRole receiverRole) throws BusinessException;

  /** 发件人ID */
  public String getSenderId() throws BusinessException;

  public void setSenderId(String senderId) throws BusinessException;
  
  /** 发件人类名 */
  public String getSenderClassName() throws BusinessException;
  
  public void setSenderClassName(String senderClassName) throws BusinessException;

  /** 提示级别。取值参见CPrompt.VALUE_LEVEL_*。 */
  public Integer getLevel() throws BusinessException;

  public void setLevel(Integer level) throws BusinessException;

  /** 提示信息 */
  public String getMessage() throws BusinessException;

  public void setMessage(String message) throws BusinessException;
  
  /** 提示信息正文。 */
  public String getText() throws BusinessException;
  
  public void setText(String text) throws BusinessException;
  
  /** 标记。取值参见CPrompt.VALUE_FLAG_*。 */
  public String getFlag() throws BusinessException;
  
  public void setFlag(String flag) throws BusinessException;
  
  /** 发生时间。 */
  public Date getTime() throws BusinessException;
  
  public void setTime(Date time) throws BusinessException;

  /** 链接。进入查看详细信息的url。 */
  public String getLink() throws BusinessException;

  public void setLink(String link) throws BusinessException;
  
  /** 链接对应的权限。 */
  public String getLinkPerm() throws BusinessException;
  
  public void setLinkPerm(String linkPerm) throws BusinessException;
}
